<?php

class GoleadorJugoValidator extends sfValidatorBase
{
	
	protected function configure($options = array(), $messages = array()) {
		$this->addOption('jugadores');
		$this->addOption('goles');
		$this->addOption('jugadores_no_fichados');
		
	}	
	
	protected function doClean($value)
	{
		$jugadores = $value[$this->getOption('jugadores')];
		$jugadores_no_fichados = $value[$this->getOption('jugadores_no_fichados')];
		$goles = explode(" ",$value[$this->getOption('goles')]);
		if($goles)//Primero chequeo que haya goles
		{
			foreach ($goles as $gol) :
				if (!$gol)//Si no hay goles...no busco
					break;
				$existe = false;
				if ($jugadores)
				{
					foreach($jugadores as $jugador): //primero busco en los fichados
						$nro = $jugador['numero_de_camiseta'];
						$jugo = $jugador['jugo'];
		
						if ( (strcmp($nro,$gol)== 0)&& $jugo )
						{
							$existe = true;
							break;
						}
					endforeach;
				}
					if (!$existe)//si no lo encontro busco en los no fichado
					{
						foreach($jugadores_no_fichados as $jugador):
							$nro = $jugador['numero_de_camiseta'];
							$jugo = $jugador['jugo'];
			
							if ( (strcmp($nro,$gol)== 0)&& $jugo )
							{
								$existe = true;
								break;
							}
						endforeach;
					}
				if (!$existe) {
					//$this->messages = array('invalid' => 'El goleador no es del equipo o no jugo'); 
					throw new sfValidatorError($this, 'invalid', array('value' => $value));
						
				}
			endforeach;
		}
		return $value;
	}

}
?>